Reverse Engineering State and Strategy Design Patterns using Static Code Analysis
نویسندگان
چکیده
This paper presents an approach to detect behavioral design patterns from source code using static analysis techniques. It depends on the concept of Code Property Graph and enriching graph with relationships and properties specific to Design Patterns, to simplify the process of Design Pattern detection. This approach used NoSQL graph database (Neo4j) and uses graph traversal language (Gremlin) for doing graph matching. Our approach, converts the tasks of design pattern detection to a graph matching task by representing Design Patterns in form of graph queries and running it on graph database. Keywords—Reverse engineering; source code analysis; design patterns; static analysis; graph matching; Gremlin; Joern; Neo4j
منابع مشابه
Reverse Engineering of Design Patterns for High Performance Computing
Reverse engineering tools are typically used for program understanding. Popular code analysis and comprehension tools like CSCOPE [6] and RedHat Source-Navigator [1] can recover program structure and relationships between program components. However, without proper documentation of legacy code, it would still take users a lot of work to understand the intent of the code. The need for a good rev...
متن کاملDetection of J2EE Patterns based on Customizable Features
Design patterns support extraction of design information for better program understanding, reusability and reengineering. With the advent of contemporary applications, the extraction of design information has become quite complex and challenging. These applications are multilingual in nature i.e. their design information is spread across various language components that are interlinked with eac...
متن کاملAnalysis of disassembled executable codes by abstract interpretation
The aim of this paper is to dene the abstract domain, abstract operator, abstract semantic, the environments and states of disassembled executable codes as well as a way to analysis the disassembled executable codes. Nowadays, static analysis on disassembled code going to grow. Reverse engineering and malware analysis use this technique. Thus, we tried to perform pluralization the requirements ...
متن کاملReverse Engineering of Network Software Binary Codes for Identification of Syntax and Semantics of Protocol Messages
Reverse engineering of network applications especially from the security point of view is of high importance and interest. Many network applications use proprietary protocols which specifications are not publicly available. Reverse engineering of such applications could provide us with vital information to understand their embedded unknown protocols. This could facilitate many tasks including d...
متن کاملA Framework for Reverse Engineering Large C++ Code Bases
When assessing the quality and maintainability of large C++ code bases, tools are needed for extracting several facts from the source code, such as: architecture, structure, code smells, and quality metrics. Moreover, these facts should be presented in such ways so that one can correlate them and find outliers and anomalies. We present SolidFX, an integrated reverse-engineering environment (IRE...
متن کامل